An increasing number of distributed applications process continuously flowing data from geographically distributed sources by applying complex queries to the data before distributing the data to geographically distributed recipients. An event stream processing engine (ESPE) continuously analyzes the data as it is received and determines which entities receive the processed data. The ESPE processes the streams of data coming from different sources to produce streams of new data as an output by executing standing queries, which run continuously and provide updated results as new data arrives.
Publish-subscribe is a message oriented interaction paradigm based on indirect addressing. Processed data recipients specify their interest in receiving information from the ESPE by subscribing to specific classes of events, while information sources publish events to the ESPE without directly addressing the receiving parties. The ESPE coordinates the interactions and processes the data. In some cases, the data source receives confirmation that the published information has been received by a data recipient.